home *** CD-ROM | disk | FTP | other *** search
/ Halting the Hacker - A P…uide to Computer Security / Halting the Hacker - A Practical Guide to Computer Security.iso / rfc / rfc1713.txt < prev    next >
Text File  |  1997-04-01  |  34KB  |  732 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           A. Romao
  8. Request for Comments: 1713                                          FCCN
  9. FYI: 27                                                    November 1994
  10. Category: Informational
  11.  
  12.  
  13.                         Tools for DNS debugging
  14.  
  15. Status of this Memo
  16.  
  17.    This memo provides information for the Internet community.  This memo
  18.    does not specify an Internet standard of any kind.  Distribution of
  19.    this memo is unlimited.
  20.  
  21. Abstract
  22.  
  23.    Although widely used (and most of the times unnoticed), DNS (Domain
  24.    Name System) is too much overlooked, in the sense that people,
  25.    especially administrators, tend to ignore possible anomalies as long
  26.    as applications that need name-to-address mapping continue to work.
  27.    This document presents some tools available for domain administrators
  28.    to detect and correct those anomalies.
  29.  
  30. 1. Introduction
  31.  
  32.    Today more than 3,800,000 computers are inter-connected in a global
  33.    Internet [1], comprising several millions of end-users, able to reach
  34.    any of those machines just by naming it.  This facility is possible
  35.    thanks to the world widest distributed database, the Domain Name
  36.    System, used to provide distributed applications various services,
  37.    the most notable one being translating names into IP addresses and
  38.    vice-versa.  This happens when you do an FTP or Telnet, when your
  39.    gopher client follows a link to some remote server, when you click on
  40.    a hypertext item and have to reach a server as defined by the URL,
  41.    when you talk to someuser@some.host, when your mail has to be routed
  42.    through a set to gateways before it reaches the final recipient, when
  43.    you post an article to Usenet and want it propagated all over the
  44.    world.  While these may be the most visible uses of DNS, a lot more
  45.    applications rely on this system to operate, e.g., network security,
  46.    monitoring and accounting tools, just to mention a few.
  47.  
  48.    DNS owes much of its success to its distributed administration.  Each
  49.    component (called a zone, the same as a domain in most cases), is
  50.    seen as an independent entity, being responsible for what happens
  51.    inside its domain of authority, how and what information changes and
  52.    for letting the tree grow downwards, creating new components.
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Romao                                                           [Page 1]
  59.  
  60. RFC 1713                Tools for DNS debugging            November 1994
  61.  
  62.  
  63.    On the other hand, many inconsistencies arise from this distributed
  64.    nature: many administrators make mistakes in the way they configure
  65.    their domains and when they delegate authority to sub-domains; many
  66.    of them don't even know how to do these things properly, letting
  67.    problems last and propagate.  Also, many problems occur due to bad
  68.    implementations of both DNS clients and servers, especially very old
  69.    ones, either by not following the standards or by being error prone,
  70.    creating or allowing many of the above problems to happen.
  71.  
  72.    All these anomalies make DNS less efficient than it could be, causing
  73.    trouble to network operations, thus affecting the overall Internet.
  74.    This document tries to show how important it is to have DNS properly
  75.    managed, including what is already in place to help administrators
  76.    taking better care of their domains.
  77.  
  78. 2. DNS debugging
  79.  
  80.    To help finding problems in DNS configurations and/or implementations
  81.    there is a set of tools developed specifically for this purpose.
  82.    There is probably a lot of people in charge of domain administration
  83.    having no idea of these tools (and, worse, not aware of the anomalies
  84.    that may exist in their configurations).  What follows is a
  85.    description of some of these programs, their scope, motivations and
  86.    availability, and is hoped to serve as an introduction to the subject
  87.    of DNS debugging, as well as a guide to those who are looking for
  88.    something to help them finding out how healthy their domains and
  89.    servers are.
  90.  
  91.    Some prior knowledge from the reader is assumed, both on DNS basics
  92.    and some other tools (e.g., dig and nslookup), which are not analyzed
  93.    in detail here; hopefully they are well-known enough from daily
  94.    usage.
  95.  
  96. 2.1. Host
  97.  
  98.    Host is a program used to retrieve DNS information from name servers.
  99.    This information may be used simply to get simple things like
  100.    address-to-name mapping, or some more advanced purposes, e.g.,
  101.    performing sanity checks on the data.  It was created at Rutgers
  102.    University, but then Eric Wassenaar from Nikhef did a major rewrite
  103.    and still seems to be actively working on improving it.  The program
  104.    is available from ftp://ftp.nikhef.nl/pub/network/host_YYMMDD.tar.Z
  105.    (YYMMDD is the date of the latest release).
  106.  
  107.    By default, host just maps host names to Internet addresses, querying
  108.    the default servers or some specific one.  It is possible, though, to
  109.    get any kind of data (resource records) by specifying different query
  110.    types and classes and asking for verbose or debugging output, from
  111.  
  112.  
  113.  
  114. Romao                                                           [Page 2]
  115.  
  116. RFC 1713                Tools for DNS debugging            November 1994
  117.  
  118.  
  119.    any name server.  You can also control several parameters like
  120.    recursion, retry times, timeouts, use of virtual circuits vs.
  121.    datagrams, etc., when talking to name servers.  This way you can
  122.    simulate a resolver behavior, in order to find any problems
  123.    associated with resolver operations (which is to say, any application
  124.    using the resolver library).  As a query program it may be as
  125.    powerful as others like nslookup or dig.
  126.  
  127.    As a debugger, host analyzes some set of the DNS space (e.g., an
  128.    entire zone) and produces reports with the results of its operation.
  129.    To do this, host first performs a zone transfer, which may be
  130.    recursive, getting information from a zone and all its sub-zones.
  131.    This data is then analyzed as requested by the arguments given on the
  132.    command line.  Note that zone transfers are done by contacting
  133.    authoritative name servers for that zone, so it must be possible to
  134.    make this kind of request from such servers: some of them refuse zone
  135.    transfers (except from secondaries) to avoid congestion.
  136.  
  137.    With host you may look for anomalies like those concerning authority
  138.    (e.g., lame delegations, described below) or some more exotic cases
  139.    like extrazone hosts (a host of the form host.some.dom.ain, where
  140.    some.dom.ain is not a delegated zone of dom.ain).  These errors are
  141.    produced upon explicit request on the command line, but you may get a
  142.    variety of other error messages as a result of host's operations,
  143.    something like secondary effects.  These may be mere warnings (which
  144.    may be suppressed) or serious errors - in fact, warning messages are
  145.    not that simple, most of them are due to misconfigured zones, so it
  146.    might not be a good idea to just ignore them.
  147.  
  148.    Error messages have to do with serious anomalies, either with the
  149.    packets exchanged with the queried servers (size errors, invalid
  150.    ancounts, nscounts and the like), or others related to the DNS
  151.    information itself (also called "status messages" in the program's
  152.    documentation): inconsistencies between SOA records as shown by
  153.    different servers for a domain, unexpected address-to-name mappings,
  154.    name servers not responding, not reachable, not running or not
  155.    existing at all, and so on.
  156.  
  157.    Host performs all its querying on-line, i.e., it only works with data
  158.    received from name servers, which means you have to query a name
  159.    server more than once if you want to get different kinds of reports
  160.    on some particular piece of data.  You can always arrange arguments
  161.    in such a way that you get all information you want by running it
  162.    once, but if you forget something or for any reason have to run it
  163.    again, this means extra zone transfers, extra load on name servers,
  164.    extra DNS traffic.
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Romao                                                           [Page 3]
  171.  
  172. RFC 1713                Tools for DNS debugging            November 1994
  173.  
  174.  
  175.    Host is an excellent tool, if used carefully.  Like most other
  176.    querying programs it may generate lots of traffic, just by issuing a
  177.    simple command.  Apart from that, its resolver simulation and debug
  178.    capabilities make it useful to find many common and some not so
  179.    common DNS configuration errors, as well as generate useful reports
  180.    and statistics about the DNS tree.  As an example, RIPE (Reseaux IP
  181.    Europeens) NCC uses it to generate a monthly european hostcount,
  182.    giving an overview of the Internet usage evolution in Europe.  Along
  183.    with these counts, error reports are generated, one per country, and
  184.    the whole information is made available in the RIPE archive.
  185.  
  186. 2.2. Dnswalk
  187.  
  188.    Dnswalk is a DNS debugger written in Perl by David Barr, from
  189.    Pennsylvania State University.  You'll find the latest version at
  190.    ftp://ftp.pop.psu.edu/pub/src/dnswalk.  With the software comes a
  191.    small document where the author points some useful advice so it may
  192.    be worth reading it.
  193.  
  194.    The program checks domain configurations stored locally, with data
  195.    arranged hierarchically in directories, resembling the DNS tree
  196.    organization of domains.  To set up this information dnswalk may
  197.    first perform zone transfers from authoritative name servers. You can
  198.    have a recursive transfer of a domain and its sub-domains, though you
  199.    should be careful when doing this, as it may generate a great amount
  200.    of traffic.  If the data is already present, dnswalk may skip these
  201.    transfers, provided that it is up to date.
  202.  
  203.    Dnswalk looks for inconsistencies in resource records, such as MX and
  204.    aliases pointing to aliases or to unknown hosts, incoherent PTR, A
  205.    and CNAME records, invalid characters in names, missing trailing
  206.    dots, unnecessary glue information, and so on.  It also does some
  207.    checking on authority information, namely lame delegations and
  208.    domains with only one name server.  It is easy to use, you only have
  209.    to specify the domain to analyze and some optional parameters and the
  210.    program does the rest.  Only one domain (and its sub-domains, if
  211.    that's the case) can be checked at a time, though.
  212.  
  213.    While in the process of checking data, dnswalk uses dig and resolver
  214.    routines (gethostbyXXXX from the Perl library) a lot, to get such
  215.    data as authority information from the servers of the analyzed
  216.    domains, names from IP addresses so as to verify the existence of PTR
  217.    records, aliases and so on.  So, besides the zone transfers you may
  218.    count on some more extra traffic (maybe not negligible if you are
  219.    debugging a relatively large amount of data and care about query
  220.    retries and timeouts), just by running the program.
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Romao                                                           [Page 4]
  227.  
  228. RFC 1713                Tools for DNS debugging            November 1994
  229.  
  230.  
  231. 2.3. Lamers
  232.  
  233.    A lame delegation is a serious error in DNS configurations, yet a
  234.    (too) common one.  It happens when a name server is listed in the NS
  235.    records for some domain and in fact it is not a server for that
  236.    domain.  Queries are thus sent to the wrong servers, who don't know
  237.    nothing (at least not as expected) about the queried domain.
  238.    Furthermore, sometimes these hosts (if they exist!) don't even run
  239.    name servers.  As a result, queries are timed out and resent, only to
  240.    fail, thus creating (more) unnecessary traffic.
  241.  
  242.    It's easy to create a lame delegation: the most common case happens
  243.    when an administrator changes the NS list for his domain, dropping
  244.    one or more servers from that list, without informing his parent
  245.    domain administration, who delegated him authority over the domain.
  246.    From now on the parent name server announces one or more servers for
  247.    the domain, which will receive queries for something they don't know
  248.    about.  (On the other hand, servers may be added to the list without
  249.    the parent's servers knowing, thus hiding valuable information from
  250.    them - this is not a lame delegation, but shouldn't happen either.)
  251.    Other examples are the inclusion of a name in an NS list without
  252.    telling the administrator of that host, or when a server suddenly
  253.    stops providing name service for a domain.
  254.  
  255.    To detect and warn DNS administrators all over the world about this
  256.    kind of problem, Bryan Beecher from University of Michigan wrote
  257.    lamers, a program to analyze named (the well-known BIND name server)
  258.    logging information [2].  To produce useful logs, named was applied a
  259.    patch to detect and log lame delegations (this patch was originally
  260.    written by Don Lewis from Silicon Systems and is now part of the
  261.    latest release of BIND thanks to Bryan Beecher, so it is expected to
  262.    be widely available in the near future).  Lamers is a small shell
  263.    script that simply scans these logs and reports the lame delegations
  264.    found.  This reporting is done by sending mail to the hostmasters of
  265.    the affected domains, as stated in the SOA record for each of them.
  266.    If this is not possible, the message is sent to the affected name
  267.    servers' postmasters instead.  Manual processing is needed in case of
  268.    bounces, caused by careless setup of those records or invalid
  269.    postmaster addresses.  A report of the errors found by the U-M
  270.    servers is also posted twice a month on the USENET newsgroup
  271.    comp.protocols.tcp-ip.domains.
  272.  
  273.    If you ever receive such a report, you should study it carefully in
  274.    order to find and correct problems in your domain, or see if your
  275.    servers are being affected by the spreading of erroneous information.
  276.    Better yet, lamers could be run on your servers to detect more lame
  277.    delegations (U-M can't see them all!).  Also, if you receive mail
  278.    reporting a lame delegation affecting your domain or some of your
  279.  
  280.  
  281.  
  282. Romao                                                           [Page 5]
  283.  
  284. RFC 1713                Tools for DNS debugging            November 1994
  285.  
  286.  
  287.    hosts, please don't just ignore it or flame the senders.  They're
  288.    really trying to help!
  289.  
  290.    You can get lamers from ftp://terminator.cc.umich.edu/dns/lame-
  291.    delegations.
  292.  
  293. 2.4. DOC
  294.  
  295.    Authority information is one of the most significant parts of the DNS
  296.    data, as the whole mechanism depends on it to correctly traverse the
  297.    domain tree.  Incorrect authority information leads to problems such
  298.    as lame delegations or even, in extreme cases, the inaccessibility of
  299.    a domain.  Take the case where the information given about all its
  300.    name servers is incorrect: being unable to contact the real servers
  301.    you may end up being unable to reach anything inside that domain.
  302.    This may be exaggerated, but if you're on the DNS business long
  303.    enough you've probably have seen some enlightened examples of this
  304.    scenario.
  305.  
  306.    To look for this kind of problems Paul Mockapetris and Steve Hotz,
  307.    from the Information Sciences Institute, wrote a C-shell script
  308.    called DOC (Domain Obscenity Control), an automated domain testing
  309.    tool that uses dig to query the appropriate name servers about
  310.    authority for a domain and analyzes the responses.
  311.  
  312.    DOC limits its analysis to authority data since the authors
  313.    anticipated that people would complain about such things as invasion
  314.    of privacy.  Also, at the time it was written most domains were so
  315.    messy that they thought there wouldn't be much point in checking
  316.    anything deeper until the basic problems weren't fixed.
  317.  
  318.    Only one domain is analyzed each time: the program checks if all the
  319.    servers for the parent domain agree about the delegation information
  320.    for the domain.  DOC then picks a list of name servers for the domain
  321.    (obtained from one of the parent's servers) and starts checking on
  322.    their information, querying each of them: looks for the SOA record,
  323.    checks if the response is authoritative, compares the various records
  324.    retrieved, gets each one's list of NS, compares the lists (both among
  325.    these servers and the parent's), and for those servers inside the
  326.    domain the program looks for PTR records for them.
  327.  
  328.    Due to several factors, DOC seems to have frozen since its first
  329.    public release, back in 1990.  Within the distribution there is an
  330.    RFC draft about automated domain testing, which was never published.
  331.    Nevertheless, it may provide useful reading.  The software can be
  332.    fetched from ftp://ftp.uu.net/networking/ip/dns/doc.2.0.tar.Z.
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Romao                                                           [Page 6]
  339.  
  340. RFC 1713                Tools for DNS debugging            November 1994
  341.  
  342.  
  343. 2.5. DDT
  344.  
  345.    DDT (Domain Debug Tools) is a package of programs to scan DNS
  346.    information for error detection, developed originally by Jorge Frazao
  347.    from PUUG - Portuguese UNIX Users Group and later rewritten by the
  348.    author, at the time at the Faculty of Sciences of University of
  349.    Lisbon.  Each program is specialized in a given set of anomalies: you
  350.    have a checker for authority information, another for glue data, mail
  351.    exchangers, reverse-mappings and miscellaneous errors found in all
  352.    kinds of resource records.  As a whole, they do a rather extensive
  353.    checking on DNS configurations.
  354.  
  355.    These tools work on cached DNS data, i.e., data stored locally after
  356.    performing zone transfers (presently done by a slightly modified
  357.    version of BIND's named-xfer, called ddt-xfer, which allows recursive
  358.    transfers) from the appropriate servers, rather than querying name
  359.    servers on-line each time they run.  This option was taken for
  360.    several reasons [3]: (1) efficiency, since it reads data from disk,
  361.    avoiding network transit delays, (2) reduced network traffic, data
  362.    has to be fetched only once and then run the programs over it as many
  363.    times as you wish and (3) accessibility - in countries with limited
  364.    Internet access, as was the case in Portugal by the time DDT was in
  365.    its first stages, this may be the only practical way to use the
  366.    tools.
  367.  
  368.    Point (2) above deserves some special considerations: first, it is
  369.    not entirely true that there aren't additional queries while
  370.    processing the information, one of the tools, the authority checker,
  371.    queries (via dig) each domain's purported name servers in order to
  372.    test the consistency of the authority information they provide about
  373.    the domain.  Second, it may be argued that when the actual tests are
  374.    done the information used may be out of date.  While this is true,
  375.    you should note that this is the DNS nature, if you obtain some piece
  376.    of information you can't be sure that one second later it is still
  377.    valid.  Furthermore, if your source was not the primary for the
  378.    domain then you can't even be sure of the validity in the exact
  379.    moment you got it in the first place.  But experience shows that if
  380.    you see an error, it is likely to be there in the next version of the
  381.    domain information (and if it isn't, nothing was lost by having
  382.    detected it in the past).  On the other side, of course there's
  383.    little point in checking one month old data...
  384.  
  385.    The list of errors looked for includes lame delegations, version
  386.    number mismatches between servers (this may be a transient problem),
  387.    non-existing servers, domains with only one server, unnecessary glue
  388.    information, MX records pointing to hosts not in the analyzed domain
  389.    (may not be an error, it's just to point possibly strange or
  390.    expensive mail-routing policies), MX records pointing to aliases, A
  391.  
  392.  
  393.  
  394. Romao                                                           [Page 7]
  395.  
  396. RFC 1713                Tools for DNS debugging            November 1994
  397.  
  398.  
  399.    records without the respective PTR and vice-versa, missing trailing
  400.    dots, hostnames with no data (A or CNAME records), aliases pointing
  401.    to aliases, and some more.  Given the specialized nature of each
  402.    tool, it is possible to look for a well defined set of errors,
  403.    instead of having the data analyzed in all possible ways.
  404.  
  405.    Except for ddt-xfer, all the programs are written in Perl.  A new
  406.    release may come into existence in a near future, after a thorough
  407.    review of the methods used, the set of errors checked for and some
  408.    bug fixing (in particular, a Perl version of ddt-xfer is expected).
  409.    In the mean time, the latest version is available from
  410.    ftp://ns.dns.pt/pub/dns/ddt-2.0.1.tar.gz.
  411.  
  412. 2.6. The Checker Project
  413.  
  414.    The problem of the huge amount of DNS traffic over the Internet is
  415.    getting researchers close attention for quite some time, mainly
  416.    because most of it is unnecessary.  Observations have shown that DNS
  417.    consumes something like twenty times more bandwidth than it should
  418.    [4].  Some causes for this undoubtedly catastrophic scenario lie on
  419.    deficient resolver and name server implementations spread all over
  420.    the world, from personal to super-computers, running all sorts of
  421.    operating systems.
  422.  
  423.    While the panacea is yet to be found (claims are made that the latest
  424.    official version of BIND is a great step forward [5]), work has been
  425.    done in order to identify sources of anomalies, as a first approach
  426.    in the search for a solution.  The Checker Project is one such
  427.    effort, developed at the University of Southern California [6].  It
  428.    consists of a set of C code patched into BIND's named, for monitoring
  429.    server activity, building a database with the history of that
  430.    operation (queries and responses).  It is then possible to generate
  431.    reports from the database summarizing activity and identifying
  432.    behavioral patterns from client requests, looking for anomalies.  The
  433.    named code alteration is small and simple unless you want do have PEC
  434.    checking enabled (see below).  You may find sources and documentation
  435.    at ftp://catarina.usc.edu/pub/checker.
  436.  
  437.    Checker only does this kind of collection and reporting, it does not
  438.    try to enforce any rules on the administrators of the defective sites
  439.    by any means whatsoever.  Authors hope that the simple exhibition of
  440.    the evidences is a reason strong enough for those administrators to
  441.    have their problems fixed.
  442.  
  443.    An interesting feature is PEC (proactive error checking): the server
  444.    pretends to be unresponsive for some queries by randomly choosing
  445.    some name and start refusing replies for queries on that name during
  446.    a pre-determined period.  Those queries are recorded, though, to try
  447.  
  448.  
  449.  
  450. Romao                                                           [Page 8]
  451.  
  452. RFC 1713                Tools for DNS debugging            November 1994
  453.  
  454.  
  455.    to reason about the retry and timeout schemes used by name servers
  456.    and resolvers.  It is expected that properly implemented clients will
  457.    choose another name server to query, while defective ones will keep
  458.    on trying with the same server.  This feature seems to be still under
  459.    testing as it is not completely clear yet how to interpret the
  460.    results.  A PEC-only error checker is available from USC that is much
  461.    simpler than the full error checker.  It examines another name server
  462.    client every 30 minutes to see if this client causes excessive load.
  463.  
  464.    Presently Checker has been running on a secondary for the US domain
  465.    for more than a year with little trouble.  Authors feel confident it
  466.    should run on any BSD platform (at least SunOS) without problems, and
  467.    is planned to be included as part of the BIND name server.
  468.  
  469.    Checker is part of a research project lead by Peter Danzig from USC,
  470.    aimed to implement probabilistic error checking mechanisms like PEC
  471.    on distributed systems [7].  DNS is one such system and it was chosen
  472.    as the platform for testing the validity of these techniques over the
  473.    NSFnet.  It is hoped to achieve enough knowledge to provide means to
  474.    improve performance and reliability of distributed systems.
  475.    Anomalies like undetected server failures, query loops, bad
  476.    retransmission backoff algorithms, misconfigurations and resubmission
  477.    of requests after negative replies are some of the targets for these
  478.    checkers to detect.
  479.  
  480. 2.7. Others
  481.  
  482.    All the tools described above are the result of systematic work on
  483.    the issue of DNS debugging, some of them included in research
  484.    projects.  For the sake of completeness several other programs are
  485.    mentioned here.  These, though just as serious, seem to have been
  486.    developed in a somewhat ad-hoc fashion, without an implicit intention
  487.    of being used outside the environments where they were born.  This
  488.    impression is, of course, arguable, nevertheless there was no
  489.    necessity of dedicating an entire section to any of them.  This
  490.    doesn't mean they are not valuable contributions, in some cases they
  491.    may be just what you are looking for, without having to install a
  492.    complete package to do some testings on your domain.
  493.  
  494.    The reference taken was the contrib directory in the latest BIND
  495.    distribution (where some of the above programs can also be found).
  496.    There you will find tools for creating your DNS configuration files
  497.    and NIS maps from /etc/hosts and vice-versa or generate PTR from A
  498.    records (these things may be important as a means of avoiding common
  499.    typing errors and inconsistencies between those tables), syntax
  500.    checkers for zone files, programs for querying and monitoring name
  501.    servers, all the small programs presented in [8], and more.  It is
  502.    worth spending some time looking at them, maybe you'll find that
  503.  
  504.  
  505.  
  506. Romao                                                           [Page 9]
  507.  
  508. RFC 1713                Tools for DNS debugging            November 1994
  509.  
  510.  
  511.    program you were planning to write yourself.  The latest public
  512.    version of BIND can be found at
  513.    ftp://gatekeeper.dec.com/pub/misc/vixie/4.9.2-940221.tar.gz.  As of
  514.    this writing BIND-4.9.3 is in its final beta stages and a public
  515.    release is expected soon, also at gatekeeper.dec.com.
  516.  
  517.    You may also want to consider using a version control system like
  518.    SCCS or RCS to maintain your configuration files consistent through
  519.    updates, or use tools like M4 macros to generate those files.  As
  520.    stated above, it's important to avoid human-generated errors,
  521.    creating problems that are difficult to track down, since they're
  522.    often hidden behind some mistyped name.  Errors like this may end up
  523.    in many queries for a non-existing name, just to mention the less
  524.    serious kind.  See [9] for a description of the most common errors
  525.    made while configuring domains.
  526.  
  527. 3. Why look after DNS?
  528.  
  529.    Several pieces of software were presented to help people administer
  530.    and debug their name services.  They exhibit many differences in
  531.    their way of doing things, scope and requirements and it may be
  532.    difficult just to choose one of them to work with.  For one thing,
  533.    people's expectations from these tools vary according to their kind
  534.    of involvement with DNS.  If you are responsible for a big domain,
  535.    e.g., a top-level one or a big institution with many hosts and sub-
  536.    domains, you probably want to see how well is the tree below your
  537.    node organized, since the consequences of errors tend to propagate
  538.    upwards, thus affecting your own domain and servers.  For that you
  539.    need some program that recursively descends the domain tree and
  540.    analyzes each domain per se and the interdependencies between them
  541.    all.  You will have to consider how deep you want your analysis to
  542.    be, the effects it will have on the network infrastructure, i.e.,
  543.    will it generate traffic only inside a campus network, no matter how
  544.    big it is, or will it be spread over, say, a whole country (of
  545.    course, your kind of connectivity plays an important role here).
  546.  
  547.    You may simply want to perform some sanity checks on your own domain,
  548.    without any further concerns.  Or you may want to participate in some
  549.    kind of global effort to monitor name server traffic, either for
  550.    research purposes or just to point out the "trouble-queries" that
  551.    flow around.
  552.  
  553.    Whatever your interest may be, you can almost surely find a tool to
  554.    suit it.  Eliminating problems like those described in this document
  555.    is a major contribution for the efficiency of an important piece of
  556.    the Internet mechanism.  Just to have an idea of this importance,
  557.    think of all the applications that depend on it, not just to get
  558.    addresses out of names.  Many systems rely on DNS to store, retrieve
  559.  
  560.  
  561.  
  562. Romao                                                          [Page 10]
  563.  
  564. RFC 1713                Tools for DNS debugging            November 1994
  565.  
  566.  
  567.    and spread the information they need: Internet electronic mail was
  568.    already mentioned (see [10] for details) and work is in progress to
  569.    integrate X.400 operations with DNS [11]; others include "remote
  570.    printing" services [12], distributed file systems and network routing
  571.    purposes, among others.  These features may be accomplished by some
  572.    standard, well-known resource records [13], or by new, experimental
  573.    ones [14, 15].  Even if some of them won't succeed, one may well
  574.    expect some more load on the DNS burden.
  575.  
  576.    The ubiquitous DNS thus deserves a great deal of attention, perhaps
  577.    much more than it generally has.  One may say that it is a victim of
  578.    its own success: if a user triggers an excessive amount of queries
  579.    only to have one request satisfied, he won't worry about it (in fact,
  580.    he won't notice it), won't complain to his system administrator, and
  581.    things will just go on like this.  Of course, DNS was designed to
  582.    resist and provide its services despite all these anomalies.  But by
  583.    doing so it is frequently forgotten, as long as people can Telnet or
  584.    ftp.  As DNS will be given new responsibilities, as pointed in the
  585.    above paragraph, the problems described in this text will grow more
  586.    serious and new ones may appear (notably security ones [16], with a
  587.    lot of work being presently in progress addressing security in DNS),
  588.    if nothing is done to purge them.
  589.  
  590. References
  591.  
  592.    [1] Lottor, M., "Internet Domain Survey, October 1994",
  593.        http://www.nw.com/zone/WWW/report.html, October 1994.
  594.  
  595.    [2] Beecher, B., "Dealing With Lame Delegations", Univ. Michigan,
  596.        LISA VI, October 1992.
  597.  
  598.    [3] Frazao, J. and J. L. Martins, "Ddt - Domain Debug Tools, A
  599.        Package to Debug the DNS Tree", Dept. Informatica Faculdade
  600.        Ciencias Univ. Lisboa, DI-FCUL-1992-04, January 1992.
  601.  
  602.    [4] Danzig, P., "Probabilistic Error Checkers: Fixing DNS", Univ.
  603.        Southern California, Technical Report, February 1992.
  604.  
  605.    [5] Kumar, A., J. Postel, C. Neuman, P. Danzig and S. Miller, "Common
  606.        DNS Implementation Errors and Suggested Fixes", RFC 1536,
  607.        USC/Information Sciences Institute, October 1993.
  608.  
  609.    [6] Miller, S. and P. Danzig, "The Checker Project, Installation and
  610.        Operator's Manual", Univ. Southern California, TR CS94-560, 1994.
  611.  
  612.    [7] Danzig, P., K. Obraczka and A. Kumar, "An Analisys of Wide-Area
  613.        Name Server Traffic", Univ. Southern California, TR 92-504, 1992.
  614.  
  615.  
  616.  
  617.  
  618. Romao                                                          [Page 11]
  619.  
  620. RFC 1713                Tools for DNS debugging            November 1994
  621.  
  622.  
  623.    [8] Albitz, P. and C. Liu, "DNS and BIND", O'Reilly and Associates
  624.        Inc., October 1992.
  625.  
  626.    [9] Beertema, P., "Common DNS Data File Configuration Errors", RFC
  627.        1537, CWI, October 1993.
  628.  
  629.   [10] Partridge, C., "Mail Routing and the Domain System", STD 14, RFC
  630.        974, CSNET CIC BBN Laboratories Inc., January 1986.
  631.  
  632.   [11] Allocchio, C., A. Bonito, B. Cole, S. Giordano and R. Hagens,
  633.        "Using the Internet DNS to Distribute RFC1327 Mail Address
  634.        Mapping Tables", RFC 1664, GARR, Cisco Systems Inc., Centro
  635.        Svizzero Calcolo Scientifico, ANS, August 1994.
  636.  
  637.   [12] Malamud, C. and M. Rose, "Principles of Operation for the TPC.INT
  638.        Subdomain: General Principles and Policy", RFC 1530, Internet
  639.        Multicasting Service, Dover Beach Consulting Inc., October 1993.
  640.  
  641.   [13] Rosenbaum, R., "Using the Domain Name System to Store Arbitrary
  642.        String Attributes", RFC 1464, Digital Equipment Corporation, May
  643.        1993.
  644.  
  645.   [14] Everhart, C., L. Mamakos, R. Ullmann and P. Mockapetris (Ed.),
  646.        "New DNS RR Definitions", RFC 1183, Transarc, Univ. Maryland,
  647.        Prime Computer, Information Sciences Institute, October 1990.
  648.  
  649.   [15] Manning, B., and R. Colella, "DNS NSAP Resource Records", RFC
  650.        1706, USC/Information Sciences Institute, NIST, October 1994.
  651.  
  652.   [16] Gavron, E., "A Security Problem and Proposed Correction With
  653.        Widely Deployed DNS Software", RFC 1535, ACES Research Inc.,
  654.        October 1993
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Romao                                                          [Page 12]
  675.  
  676. RFC 1713                Tools for DNS debugging            November 1994
  677.  
  678.  
  679. Security Considerations
  680.  
  681.    Security issues are not discussed in this memo (although security is
  682.    briefly mentioned at the end of section 3).
  683.  
  684. Author's Address
  685.  
  686.    Artur Romao
  687.    DI - Faculdade de Ciencias e Tecnologia
  688.    Universidade Nova de Lisboa
  689.    Quinta da Torre
  690.    P-2825 Monte de Caparica
  691.    Portugal
  692.  
  693.    Phone: +351 1 294 28 44
  694.    Fax:   +351 1 295 77 86
  695.    EMail: artur@fct.unl.pt
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Romao                                                          [Page 13]
  731.  
  732.